Type Refinements
نویسندگان
چکیده
Despite many concentrated research efforts in various areas such as software engineering, programming languages, and logic, software today is not fundamentally more reliable than it was a decade ago. Software is becoming increasingly complex and inter-reliant and the techniques and tools provided by the academic community are used only sparsely. In part, this can be attributed to the many barriers to technology transfer. However, one can also recognize that in a number of ways the methods provided by the research community fail to be applicable to the problems faced by developers or maintainers of large-scale, long-lived systems. One important aspect of software development and maintenance is to understand properties of a complete system, its individual components, and how they interact. There is a wide range of properties of interest, some concerned only with the input/output behavior of functions, others concerned with concurrency or real-time requirements of processes. Upon examining the techniques for formally specifying, understanding, and verifying program behavior available today, one notices that they are almost bi-polar. On the one extreme we find work on proving the correctness of programs, on the other we find type systems for programming languages. Both of these have clear shortcomings: program proving is very expensive, time-consuming, and often infeasible, while present type systems support only minimal consistency properties of programs. The proposed research is intended to help bridge this gap by designing and implementing more refined type systems that allow rich classes of program properties to be expressed, yet still be automatically verified. Through careful, logically motivated design we hope to combine the best ideas from abstract interpretation, automated program analysis, type theory, and verification. In the remainder of this section we explain and justify our approach in somewhat more detail, before giving a research plan in the next section.
منابع مشابه
A note on the Young type inequalities
In this paper, we present some refinements of the famous Young type inequality. As application of our result, we obtain some matrix inequalities for the Hilbert-Schmidt norm and the trace norm. The results obtained in this paper can be viewed as refinement of the derived results by H. Kai [Young type inequalities for matrices, J. Ea...
متن کاملOn Bernstein Type Inequalities for Complex Polynomial
In this paper, we establish some Bernstein type inequalities for the complex polynomial. Our results constitute generalizations and refinements of some well-known polynomial inequalities.
متن کاملWhen Is a Type Refinement an Inductive Type?
Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of par-ticular use in dependently typed programming are indexed types that refine data by computationally useful information. For example, the Nindexed type of vectors refines lists by their lengths. Other data types may be refined in similar ways, but programmers must produce ...
متن کاملRefining Inductive Types
Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of particular use in dependently typed programming are indexed types that refine data by computationally useful information. For example, the N-indexed type of vectors refines lists by their lengths. Other data types may be refined in similar ways, but programmers must produce ...
متن کاملType Refinements for Compiler Correctness
Type refinements, introduced by Freeman and Pfenning and explored by Davies and Dunfield, unify the ontological and epistemic views of typing. Types tell us what programming language constructs exist, whereas refinements express properties of the values of a type. Here we show that refinements are very useful in compiler correctness proofs, wherein it often arises that two expressions that are ...
متن کاملCombining Two Forms of Type Refinements
Type refinements allow invariants about algebraic datatypes to be expressed through the type system. We present a small functional language and type system that elegantly combines datasort refinements (commonly called refinement types) and dependent index refinements, so that one can specify invariants using whatever refinement is most suitable. Our type system has intersections (novel in the p...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001